﻿using Dapper;
using Estsh.Core.Base;
using Estsh.Core.Model.Extend.Models;
using Estsh.Core.Models;
using Estsh.Core.Repositories;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Estsh.Core.Wms.IRepositories
{
    public interface IScatteredInStockRepository : IBaseRepository<BaseEntity>
    {
        public List<WmsInstock> GetScatteredInStockOrderList(string orderNo);
        public List<WmsInstock_Extend> GetScatteredInStockOrderListByOrderNo(string orderNo);
        public SysLocate GetLocateByLocateName(string locateName);
        public SysStock GetStackQtySumByLocateName(string locateName);
        public List<WmsInstockDetail> GetInstockByOrderNoDestErp(string orderNo, string destErpWare);
        public SysStock GetStockByCartonNo(string cartonNo);

        public List<SysStock> GetStockByCartonNoList(string cartonNo);
        public SysLocate GetLocateInfoByLocateName(string locateName);
        public List<SysStock> GetInStockByLocateName(string locateName);
        public List<WmsInstock> GetInStockByOrderNo(string orderNo);
        public List<WmsInstockDetail> GetInStockDetailByOrderNoPartNo(string orderNo, string partNo);
        public List<WmsInstockSn> GetInStockSnByOrderNo(string orderNo);
        public List<WmsInstockSn> GetInStockSnByOrderNoCartonNo(string orderNo, string cartonNo);
        public List<WmsInstock> GetInStockInfoByOrderNo(string orderNo);
        public List<WmsInstockDetail> GetInStockDetailQtySumByOrderNo(string orderNo);
        public List<WmsInstockDetail> GetFinishInStockDetailByOrderNo(string orderNo);
        public SysPart GetPartNOInfoByPartNo(string partNo);
        public int SQLTransaction(List<string> sqlStrings, List<DynamicParameters> parameterList);

        public List<WmsRackPackage_Extend> GetCartonInfo(string rackNo);

        public List<WmsInstockDetail> GetInstockOrderNo(string orderNo);

        public List<WmsRackPackage_Extend> GetRackPackageCartons(string cartNo);
    }
}
